package com.qianxun.module.datasource1.admin.dto;

import com.qianxun.module.base.bo.ValidGroup;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import java.io.Serializable;

/**
* @author: admin
* @date: 2019-11-14
* @version: v1.0.0
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class SysMenuDTO implements Serializable {
    /**
     * id
     */
    private Long id;
    /**
     * 菜单名称
     */
    private String name;
    /**
     * 请求地址
     */
    private String url;
    /**
     * 图标地址
     */
    private String icon;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 菜单标识 标识当前功能是否是菜单，如果是菜单则会在菜单列表中展示；0 非菜单， 1 菜单
     */
    private Integer menuFlag;
    /**
     * 描述
     */
    @Length(max = 64 ,message = "description {maxLength} 64" ,groups = {ValidGroup.C1.class})
    private String description;
    /**
     * 可用标识 标识功能可用状态，当功能处于不可用状态时，即便拥有权限也不能访问；0：不可用 ；1：可用
     */
    private Integer status;
    /**
     * 编码 菜单编码，用于关联同一类下的所有菜单，该code每3个字符表示一个菜单层级，每个菜单可表示999个菜单类型，最多可表示10个层级；示例：001002000000000000000000000
     */
    private String code;
    /**
     * 菜单展示在页面布局时的展示方式；
     * LEVEL :  水平展示
     * VERTICAL :  垂直展示
     * 默认为垂直展示
     */
    private String showMode;
    /**
     * 父类型id 默认为0 ，表示顶级菜单
     */
    private Long pid;
}
